#!/bin/bash

# 加倍行距
# 看起来相当简单！这个技巧的关键在于保持空间的默认值。记住， G命令会简单地将保持空
# 间内容附加到模式空间内容后。当启动sed编辑器时，保持空间只有一个空行。将它附加到已有
# 行后面，你就在已有行后面创建了一个空白行。
# ```sh
# ➜  les8 git:(master) ✗ sed 'G' to-add-blank-file.txt
# This is the header line.

# This is the first data line.

# This is the second data line.

# This is the last line.

# ➜  les8 git:(master) ✗ 
# ```


echo "=========="
echo "'G' to-add-blank-file.txt"
sed 'G' to-add-blank-file.txt


# 你可能已经注意到了，这个脚本在数据流的最后一行后面也加了一个空白行，使得文件的末
# 尾也产生了一个空白行。如果你不想要这个空白行，可以用排除符号（!）和尾行符号（$）来确
# 保脚本不会将空白行加到数据流的最后一行后面。
# ```sh
# ➜  les8 git:(master) ✗ sed '$!G' to-add-blank-file.txt
# This is the header line.

# This is the first data line.

# This is the second data line.

# This is the last line.%
# ➜  les8 git:(master) ✗ 
# ```


echo "=========="
echo "'$!G' to-add-blank-file.txt"
sed '$!G' to-add-blank-file.txt


# 如果文本文件已经有一些空白行，
# 但你想给所有行加倍行间距要怎么办呢？
# 首先删除数据流中的所有空白行，
# 然后用G命令在所有行后插入新的空白行。要删除已有的空白行，
# 需要将d命令和一个匹配空白行的模式一起使用。
# ```sh
# ➜  les8 git:(master) ✗ sed '/^$/d ; $!G' to-add-blank-file.txt
# This is line number 1.

# This is line number 2.

# This is line number 3.

# This is line number 4.%
# ➜  les8 git:(master) ✗ 
# ```

echo "=========="
echo "sed '/^$/d ; $!G' to-add-blank-file.txt"
sed '/^$/d ; $!G' to-add-blank-file.txt



